//
//  Camera.h
//  GL_test_cpp
//
//  Created by Garrett Manka on 9/18/11.
//  Copyright 2011. All rights reserved.
//

#ifndef CAMERA_H_
#define CAMERA_H_

#ifdef _WIN32

#include <glut.h>

#else

#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <OpenGL/glext.h>
#include <GLUT/glut.h>
#include <math.h>

#endif

#include <sim/Player.h>

namespace Sim
{

    class Camera : public Player
    {
    public:
    
        Camera();
        Camera(const std::string& name, Vector pos, Vector vel, Vector up);
        Camera(Vector& pos, Vector& vel, Vector& accel, Vector& up);
        
        void orient(Player* player);
        
        void moveDown();
        void moveUp();
        
        const Vector& getFocus() const;
        
    private:
        
        Vector m_focus;
        Vector m_pos_offset;
    };
    
}

#endif